今天我們要來介紹什麼是monitoring,他是一個很重要的概念,對我們的app品質的監控。
我們可以通過工具或是腳本或是平台,持續的監控著我們的app、系統等的運作狀況,來確保是否有不正常的狀況,例如CPU使用量突然飆高等,又者是硬碟的使用空間爆炸等等。
那為什麼我們需要監控系統呢? 壞掉重開不就好了嗎XD
有這些監控的數據,可以幫助我們更快的發現問題以及故障排除,甚至可以透過這些數據,來幫我們對系統的瓶頸進行優化,又或者是評估我們app的使用量,如果使用者太多就多開一點pod來服務。
監控系統中用來衡量和觀察系統或應用程式的性能或是穩定性以及健康狀況的資料指標。可以想像它就是監控的數值,可以理解為app的健康報告指數。
通常會由後端來提供
例如quarkus的metrics網址http://localhost:8080/q/metrics
又或者是Spring Boot的metrics(透過actuator)http://localhost:8080/actuator/metrics
p.s.這些是要做一些設定才會有
Prometheus是一個在k8s上面很好用的監控工具,他可以監控各種指標,我們這邊以java spring boot為例,來看看有什麼可以輸出給普米來監控
http_server_requests_seconds_count
:HTTP request的總次數,根據 HTTP 方法、狀態碼和 URL 進行分類。http_server_requests_seconds_sum
:HTTP request處理的總時間http_server_requests_seconds_max
:HTTP request的最大處理時間http_server_requests_seconds_bucket
:HTTP request的處理時間直方圖jvm_memory_used_bytes
:JVM使用的memoryjvm_memory_max_bytes
:JVM 的最大內存容量,用來確定應用是否接近內存瓶頸。可以看到他真的有許多好東西可以監控,甚至我們可以客製化自己想要的metrics,真的很方便呢,以上這些只是冰山一角,他提供超多的metrics來讓我們監控。
人走在江湖,鐵定要會一點的monitor,今天我們對monitor開始認識了,以後就不會不知道普米是甚麼啦XD
https://wade-software-study-note.medium.com/devops%E8%AA%B2%E7%A8%8B-prometheus-1-7a690f7d4426